package com.artron.mediaartron.data.net.api;

import com.artron.baselib.entity.Response;
import com.artron.mediaartron.data.entity.OrderContentData;
import com.artron.mediaartron.data.entity.OrderData;
import com.artron.mediaartron.data.entity.OrderDetailData;
import com.artron.mediaartron.data.entity.ShoppingCartData;
import com.artron.mediaartron.data.entity.ShoppingCartItemData;
import com.artron.mediaartron.data.entity.Works;

import java.util.List;

import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Path;
import retrofit2.http.Query;
import rx.Observable;

import static android.R.attr.path;
import static com.umeng.analytics.pro.x.S;

/**
 * Class description here
 *
 * @author doing
 * @version 1.0.0
 * @since 2017-10-26.
 */

public interface OrderApi {

    @POST("createRapidOrder")
    Observable<Response<OrderData>> createRapidOrder(@Body RequestBody body);

    @POST("saveTrolley")
    Observable<Response> addShoppingCart(@Body RequestBody body);

    @GET("queryTrolleyDetailList/{passportId}")
    Observable<Response<ShoppingCartData>> queryShoppingList(@Path("passportId") String passportId,
                                                             @Query("pageIndex") int pageIndex,
                                                             @Query("pageSize") int pageSize);

    @POST("updateTrolleyNum/{passportId}")
    Observable<Response> updateCartItemNum(@Path("passportId") String passportId, @Query("edtId") String edtId,
                                           @Query("num") String num);


    /**
     *
     1	-1	已取消	是
     2	1	已创建
     3	2	支付中
     4	3	已支付
     5	4	PDF 制作中
     6	5	PDF 制作完成
     7	6	推送给MES
     8	7	成功推送到MES
     9	8
     10	9
     11	10	已发货
     */
    @POST("queryOrders/{passportId}")
    Observable<Response<OrderContentData>> queryOrders(@Path("passportId") String passportId, @Query("pageIndex") int pageIndex,
                                                       @Query("pageSize") int pageSize, @Query("status") byte status);

    @POST("queryOrders/{passportId}")
    Observable<Response<OrderContentData>> queryAllOrders(@Path("passportId") String passportId, @Query("pageIndex") int pageIndex,
                                                       @Query("pageSize") int pageSize);

    @POST("createOrder")
    Observable<Response<OrderData>> createOrder(@Query("passportId") String passportId, @Query("totalPrice") String totalPrice, @Query("totalQuantity") String totalQuantity,
                                     @Query("worksIds") String worksIds, @Query("worksQuantities") String worksQuantities, @Query("trolleyDetailIds") String trolleyDetailIds,
                                     @Query("expressFee") String expressFee, @Query("clientCode") String clientCode, @Query("channelCode") String channelCode,
                                     @Query("addressId") String addressId, @Query("invoiceTitle") String invoiceTitle, @Query("invoiceContent") String invoiceContent,
                                     @Query("couponCode") String couponCode, @Query("isUseCard") int isUseCard);

    @POST("queryOrder/{id}")
    Observable<Response<OrderDetailData>> queryOrder(@Path("id") String id);

    @POST("cancelOrder/{code}")
    Observable<Response> cancelOrder(@Path("code") String code);

    @GET("recycleOrder/{code}")
    Observable<Response> recycleOrder(@Path("code") String code);
}
